package com.hzz.dto.river;

import com.alibaba.fastjson.annotation.JSONField;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.hzz.framework.dto.BaseDto;
import io.swagger.annotations.ApiModel;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.math.BigDecimal;
import java.util.Date;

@Data
@NoArgsConstructor
@AllArgsConstructor
@JsonInclude(JsonInclude.Include.NON_NULL)
@ApiModel("泵闸信息(工程设施信息) DTO")
public class PumpGateDto extends BaseDto {
    /** id */
    Long id;
    
    /** 站点编码 */
    @NotNull(message = "code不能为空")
    @Size(max = 50, message = "code最大50字符")
    String code;
    
    /** 站点名称 */
    @NotNull(message = "name不能为空")
    @Size(max = 50, message = "name最大50字符")
    String name;
    
    /** 所在河道 */
    @NotNull(message = "riverCourseCode不能为空")
    @Size(max = 50, message = "riverCourseCode最大50字符")
    String riverCourseCode;
    
    String riverCourseName;
    
    /** 类型 */
    @NotNull(message = "type不能为空")
    @Size(max = 50, message = "type最大50字符")
    String type;
    
    /** 行政区划 */
    @Size(max = 100, message = "regionId最大100字符")
    String regionId;
    
    /** 行政区划名称 */
    @Size(max = 100, message = "regionName最大100字符")
    String regionName;
    
    /** 所在经度 */
    @NotNull(message = "longitude不能为空")
    Double longitude;
    
    /** 所在纬度 */
    @NotNull(message = "latitude不能为空")
    Double latitude;
    
    /** 建成时间 */
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    Date completionTime;
    
    /** 工程等级 */
    BigDecimal engineeringLevel;
    
    /** 建筑物等级 */
    @Size(max = 50, message = "buildingLevel最大50字符")
    String buildingLevel;
    
    /** 闸门/水泵数量 */
    @NotNull(message = "pumpsNumber不能为空")
    Integer pumpsNumber;
    
    /** 节制闸过闸流量/装机流量(m³/s) */
    @NotNull(message = "sluiceFlow不能为空")
    Double sluiceFlow;
    
    /** 闸门总净宽/设计扬程(m) */
    @NotNull(message = "gateWidth不能为空")
    Double gateWidth;
    
    /** 装机功率(kw) */
    @NotNull(message = "installedPower不能为空")
    Double installedPower;
    
    /** 水闸管理单位名称 */
    @Size(max = 50, message = "management最大50字符")
    String management;
    
    /** 站点地址 */
    @NotNull(message = "siteAddress不能为空")
    @Size(max = 50, message = "siteAddress最大50字符")
    String siteAddress;
    
    /** 备注 */
    @Size(max = 255, message = "memo最大255字符")
    String memo;
    
    /** 删除标识(0未删除1已删除) */
    Integer delFlag;
    
    /** 建立者id */
    Long createId;
    
    /** 更新时间 */
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    Date dateUpdated;
    
    /** 创建时间 */
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    Date dateCreated;
    
}
